package inteligencia_mapa;

import main.Programa;
import roles.Malo;

public class HiloParaMalo extends Thread{
	
	protected Malo miMalo;
	protected Programa elPrograma;
	protected int VELOCIDAD = 4;
	protected boolean derecha;
	protected Gravedad miGrav;
	protected boolean estaBajando;
	
	
	public HiloParaMalo(Programa MP, Malo mm){
		miMalo = mm;
		elPrograma = MP;
		estaBajando = false;
		derecha = true;
		miGrav = new Gravedad(MP, elPrograma.obtenerMovMapa(), miMalo);
	}
	
	public void run(){
		try {
			this.join(1);
		} catch (InterruptedException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		while(true){
			
			try{
				if(miMalo.obtenerMovPJ().puedo_ir_derecha() && derecha && !estaBajando){
					miMalo.irDerecha(VELOCIDAD);
				}else{
					derecha = false;
					if(miMalo.obtenerMovPJ().puedo_ir_izquierda() && !estaBajando){
						miMalo.irIzqierda(VELOCIDAD);
					}else{
						derecha = true;
					}
				}
				if(miGrav.puedo_bajar()){
					estaBajando = true;
					miGrav.tirar_para_abajo(0);
				}else{
					estaBajando = false;
				}
				elPrograma.obtenerMovMapa().refreshMapa(elPrograma.obtenerActualX());
				Thread.sleep(100);
			}catch (Exception e){
				e.printStackTrace();
			}
		}
	}
}
